﻿using System;

namespace BusinessBingo.Common.Interfaces
{
    /// <summary>
    /// Interface for Logging
    /// </summary>
    public interface ILogger
    {
        /// <summary>
        /// Writes a info-message to log
        /// </summary>
        /// <param name="context">Logging context</param>
        /// <param name="message">Logging message</param>
        /// <param name="args">Params for message</param>
        void Info(string context, string message, params object[] args);

        /// <summary>
        /// Writes a debug-message to log
        /// </summary>
        /// <param name="context">Logging context</param>
        /// <param name="message">Logging message</param>
        /// <param name="args">Params for message</param>
        void Debug(string context, string message, params object[] args);

        /// <summary>
        /// Writes a error-message to log
        /// </summary>
        /// <param name="context">Logging context</param>
        /// <param name="message">Logging message</param>
        /// <param name="ex">Exception for logging</param>
        /// <param name="args">Params for message</param>
        void Error(string context, string message, Exception ex, params object[] args);
    }
}
